A color space is a system having axes and that describes color numerically. Printing devices commonly employ the cyan-magenta-yellow (CMY) or the cyan-magenta-yellow-black (CMYK) color space, while computing and display devices commonly employ the red-green-blue (RGB) color space. For example, a color represented in the CMY color space has a cyan value, a magenta value, and a yellow value, that combined numerically represent the color.
A color lookup table (CLUT) is a table that converts colors numerically described in one color space to another color space. A CLUT may have a number of nodes. Each node represents a unique combination of color values of a color space from which conversion is desired, and a unique combination of color values of another color space to which conversion is desired. For example, each node of an RGB-to-CMY CLUT includes a unique combination of red, green, and blue color values that represents a color within the RGB color space, and a combination of cyan, magenta, and yellow color values that represents this color within the CMY color space.
A CLUT can be directly mapped, where each node is individually addressable by any possible input value. For instance, for input values having three eight-bit components, a directly mapped CLUT has (28)3=16,777,216 nodes. Usually such a CLUT is sub-sampled so that a linear interpolation between nodes is sufficiently close to the actual values. Nevertheless, this smaller CLUT can still be quite large.
CLUT's thus can be relatively large, and thus take up relatively large amounts of storage space such as memory. As a result, it can be desirable to compress CLUT's to more efficiently store them. However, existing compression methodologies that are not specific to CLUT's may not optimally compress CLUT's. Furthermore, compression methodologies that are specific to CLUT's may not exist within the prior art.